/**
 * @file
 *
 * Header del modulo per la gestione del file dei records.
 *
 * In questo file viene gestito l'archivio ::RECORDS_INI_FILE (definito in
 * common.h) che contiene i dati relativi ai records delle partite. \n
 * Viene salvato il nome del giocatore ed il tempo migliore per ogni tipo di
 * gliglia in una sezione indicata come [colonne x righe x mine].
 */

// Author: Adrian Sassatelli
// Copyright (c) 2014 Adrian Sassatelli


/* -------------------------------------------------------------------------- */
/*    DICHIARAZIONI                                                           */
/* -------------------------------------------------------------------------- */

/**
 * Struttura contenente i dati del record attuale della partita
 */
struct record_data_s {
    int seconds;    /**< Tempo impiegato per la risoluzione della partita in secondi */
    gchar *name;    /**< Nome della persona che ha effettuato il record */
};


/* -------------------------------------------------------------------------- */
/*    FUNZIONI                                                                */
/* -------------------------------------------------------------------------- */

/**
 * Lettura del record corrente.
 *
 * Legge dal file ::RECORDS_INI_FILE nella sezione [colonne x righe x mine], i
 * vari dati del'eventuale record attuale.
 *
 * @param[inout] adata Dati record corrente
 * @param[in] acols Numero di colonne per costruzione sezione nel file INI
 * @param[in] arows Numero di righe per costruzione sezione nel file INI
 * @param[in] amines Numero di mine per costruzione sezione nel file INI
 * @return True se operazione è andata a buon fine, altrimenti false
 */
gboolean load_current_record (record_data_s *adata, const int acols, const int arows, const int amines);

/* -------------------------------------------------------------------------- */

/**
 * Salvataggio del record corrente.
 *
 * Salva nel file ::RECORDS_INI_FILE nella sezione [colonne x righe x mine], i
 * vari dati del record attuale.
 *
 * @param[in] adata Dati record corrente
 * @param[in] acols Numero di colonne per costruzione sezione nel file INI
 * @param[in] arows Numero di righe per costruzione sezione nel file INI
 * @param[in] amines Numero di mine per costruzione sezione nel file INI
 * @return True se operazione è andata a buon fine, altrimenti false
 */
gboolean save_current_record (record_data_s adata, const int acols, const int arows, const int amines);

/* -------------------------------------------------------------------------- */
